package com.example;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;

public class UserService {
    //传身份证号给出年龄
    public Integer getAge(String idCard){
        if (idCard == null || idCard.length() != 18) {
            return null;
        }

        try {
            // 提取出生日期部分（第7到14位）
            String birthDateStr = idCard.substring(6, 14);

            // 解析出生日期
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
            LocalDate birthDate = LocalDate.parse(birthDateStr, formatter);
            LocalDate currentDate = LocalDate.now();

            // 计算周岁年龄
            return Period.between(birthDate, currentDate).getYears();
        } catch (Exception e) {
            return null; // 日期格式无效时返回null
        }
    }

    //给身份证号，计算出该用户的性别
    public String getGender(String idCard)  {
    try {
        if (idCard == null || idCard.length() != 18) {
            throw new IllegalAccessException("无效身份证号");
        }
        // 获取第17位字符（性别代码）
        char genderCode = idCard.charAt(16);

        // 奇数为男性，偶数为女性
        return (genderCode % 2 == 1) ? "男" : "女";
    } catch (Exception e) {
        return null; // 无效索引时返回null
     }
     }
    }

